import requests
from bs4 import BeautifulSoup
import os
from urllib.parse import urljoin

# 创建保存图片的文件夹，如果已存在则不会报错
os.makedirs('fzu_images', exist_ok=True)

# 遍历6个页面，从第1页到第6页
for page in range(0, 6):
    # 构造页面URL：第1页特殊处理，其他页按规律生成
    url = f'https://news.fzu.edu.cn/yxfd/{page}.htm' if page >= 1 else 'https://news.fzu.edu.cn/yxfd.htm'

    print(f"处理页面: {url}")

    # 发送GET请求获取页面内容
    response = requests.get(url)
    response.encoding = 'utf-8'
    soup = BeautifulSoup(response.text, 'html.parser')

    # 查找所有包含图片的div元素，class为'img slow'
    for img in soup.find_all('div', class_='img slow'):
        img_tag = img.find('img')
        if img_tag and img_tag.get('src'):
            img_url = urljoin(url, img_tag['src'])

            # 检查图片格式，只下载jpg、jpeg、png格式
            if any(img_url.lower().endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
                try:
                    # 下载图片内容
                    img_data = requests.get(img_url).content
                    filename = os.path.basename(img_url)
                    filepath = os.path.join('fzu_images', filename)

                    # 处理重复文件名：如果文件已存在，在文件名后添加数字
                    counter = 1
                    original_path = filepath
                    while os.path.exists(filepath):
                        name, ext = os.path.splitext(original_path)
                        filepath = f"{name}_{counter}{ext}"
                        counter += 1

                    # 以二进制写入模式保存图片
                    with open(filepath, 'wb') as f:
                        f.write(img_data)
                    print(f"  已下载: {os.path.basename(filepath)}")

                except Exception as e:
                    print(f"  下载失败: {e}")

print("所有图片下载完成！保存在 'fzu_images' 文件夹中")